//对axios进行二次封裝
import axios from 'axios'
//引入进度条
import nprogress from 'nprogress'
//引入进度条的样式
import "nprogress/nprogress.css"
// 引入store
import store from '@/store'

//axios的create方法创建axios实例
const requests = axios.create({
    baseURL: '/api',
    timeout: 5000,
})
//请求拦截器
requests.interceptors.request.use((config) => {
    // 从 store.state.detail.uuid-token 中获取 游客 身份添加到 请求头
    if (store.state.detail.uuid_token) {
        // 给请求头添加字段（userTempId）：和后台约定
        config.headers.userTempId = store.state.detail.uuid_token;
    }
    // 需要携带token给服务器
    if (store.state.user.token) {
        config.headers.token = store.state.user.token;
    }
    //进度条开始
    nprogress.start()
    return config
})
//响应拦截器
requests.interceptors.response.use((res) => {
    //进度条结束
    nprogress.done()

    //成功的回调
    return res.data;
}, () => {
    //失败的回调
    return Promise.reject(new Error('faile'))
})

export default requests